/**
 * 加工中心管理API
 * 用于获取加工中心列表数据
 */

import request from '@/utils/request'

/**
 * 获取加工中心列表
 * @param {Object} params - 查询参数
 * @param {string} params.processNo - 工序编码（可选）
 * @param {string} params.prodCenterNo - 加工中心编码（可选）
 * @param {string} params.prodCenter - 加工中心名称（可选）
 * @param {string} params.prodCenterLevel - 加工中心级别（可选）
 * @returns {Promise<Object>} 加工中心列表
 */
export function getProdCenterList(params = {}) {
  return request({
    url: '/md/prod-center/list',
    method: 'GET',
    params
  })
}

/**
 * 获取所有加工中心选项（转换为下拉框格式）
 * @param {string} processNo - 工序编码（可选）
 * @returns {Promise<Array>} 加工中心选项数组
 */
export async function getProdCenterOptions(processNo) {
  try {
    const params = {}
    if (processNo) {
      params.processNo = processNo
    }
    
    const res = await getProdCenterList(params)
    
    if (res.code === 0 && res.data) {
      return res.data.map(item => ({
        value: item.prodCenterNo,
        text: item.prodCenter,
        ...item
      }))
    } else {
      console.warn('获取加工中心数据失败:', res.msg)
      return []
    }
  } catch (error) {
    console.error('获取加工中心选项失败:', error)
    return []
  }
}

/**
 * 根据加工中心编码获取加工中心信息
 * @param {string} prodCenterNo - 加工中心编码
 * @returns {Promise<Object>} 加工中心信息
 */
export async function getProdCenterByNo(prodCenterNo) {
  try {
    const res = await getProdCenterList({ prodCenterNo })
    
    if (res.code === 0 && res.data && res.data.length > 0) {
      return res.data[0]
    }
    return null
  } catch (error) {
    console.error('获取加工中心信息失败:', error)
    return null
  }
}